package  cn.qiku.rf.effects.easing
{
/**
 *  @private
 */ 
public class Bounce
{


	public static function easeOut(t:Number, b:Number,
								   c:Number, d:Number):Number
	{
		if ((t /= d) < (1 / 2.75))
			return c * (7.5625 * t * t) + b;
		
		else if (t < (2 / 2.75))
			return c * (7.5625 * (t -= (1.5 / 2.75)) * t + 0.75) + b;
		
		else if (t < (2.5 / 2.75))
			return c * (7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375) + b;
		
		else
			return c * (7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375) + b;
	}

	public static function easeIn(t:Number, b:Number,
								  c:Number, d:Number):Number
	{
		return c - easeOut(d - t, 0, c, d) + b;
	}

	public static function easeInOut(t:Number, b:Number,
									 c:Number, d:Number):Number
	{
		if (t < d/2)
			return easeIn(t * 2, 0, c, d) * 0.5 + b;
		else
			return easeOut(t * 2 - d, 0, c, d) * 0.5 + c * 0.5 + b;
	}
}

}
